﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using ComponentFactory.Krypton.Toolkit;
using PomodoroSuite.EntidadesNegocio;
using PomodoroSuite.FrontEnd.Win.Properties;
using PomodoroSuite.FW.Comun.Apoyo;
using PomodoroSuite.FW.DAL;

namespace PomodoroSuite.FrontEnd.Win
{
    public partial class frmLogin : KryptonForm
    {
        #region " Constructor "

        public frmLogin()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Constructor para bloquear la pantalla
        /// </summary>
        /// <param name="login"></param>
        public frmLogin(string login)
        {
            InitializeComponent();
            txtNombreUsuario.Text = login;
            txtNombreUsuario.Enabled = false;
        }

        #endregion

        #region " Eventos Formulario "

        private void btnIngresar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtNombreUsuario.Text) || string.IsNullOrEmpty(txtPassword.Text))
            {
                MessageBox.Show(Resources.comun_DatosVacios, Resources.comun_Advertencia, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            DalGenerico<Usuario> dalUsuario = FabricaDAL.ObtenerDal<Usuario>();

            List<Filtro> filtros = new List<Filtro>();
            filtros.Add(new Filtro("Login", txtNombreUsuario.Text));
            filtros.Add(new Filtro("Password", txtPassword.Text));
            Usuario usuarioLogueado = dalUsuario.ObtenerListadoFiltrado(filtros).FirstOrDefault();
            if (usuarioLogueado != null)
            {
                Program.UsuarioActivo = usuarioLogueado;
                Close();
            }
            else
            {
                MessageBox.Show(Resources.frmLogin_NoExisteUsuario, Resources.comun_Informacion, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            Close();
        }

        #endregion
    }
}
